今天我們來學習 Vue 如何綁定表單的資料欄位
我們透過 v-model
將變數 text
資料與 input
單行輸入值綁在一起,也透過 v-model
將變數 textarea
資料與 textarea
多行資料輸入值綁在一起。此時,當我們在 input
單行欄位或 textarea
多行欄位輸入時,此時綁定的資料 textarea
還有 text
就會跟著變動。
<body>
<div class="app">
input:<input type="text" v-model="text"> {{text}}
<br>
textarea:<textarea cols="30" rows="3" v-model="textarea"></textarea>
{{textarea}}
</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
var app = new Vue({
el:'.app',
data:{
text:"",
textarea:""
}
});
</script>
我們用 v-model
將 checkbox
資料和 checkbox
多選欄位綁定在一起,當我們點擊 checkbox
欄位時,會發現資料 checkbox
值更改為 true
,再點擊一次,checkbox
值更改為 false
。如果我們使用 v-model
將 checkbox
點擊欄位和陣列資料 checkboxarray
綁在一起,並且設定各項點擊欄位的value
,會發現當我們點擊各項 checkbox
點擊欄位時,他的 value
會被加進 checkboxarray
陣列內,再次點擊,反之就從陣列中刪除。
<body>
<div class="app">
<input type="checkbox" v-model="checkbox">吃晚餐<br>
喜歡吃什麼肉??
<input type="checkbox" v-model="checkboxarray" value="chicken">雞肉
<input type="checkbox" v-model="checkboxarray" value="beef">牛肉
<input type="checkbox" v-model="checkboxarray" value="pork">豬肉
</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
var app = new Vue({
el:'.app',
data:{
checkbox:'',
checkboxarray:[]
}
});
</script>
Radio
和 Checkbox
最大的差異在於一個是單選,一個是多選,如果我們用 v-model
將資料 radio
還和 radio
點擊欄位綁在一起,此時可以發現,當我點擊 radio
點擊欄位時,radio
資料會變成 radio
點擊欄位設定的 value
值,當我們點擊不同 radio
的點擊欄位時,radio
資料會變成我們的點擊欄位的 value
,就算我們把 radio
資料以陣列方式呈現,點擊後還是會以單一資料呈現,不像 checkbox
可以有多筆值。
<body>
<div class="app">
喜歡吃什麼肉??
<input type="radio" v-model="radio" value="chicken">雞肉
<input type="radio" v-model="radio" value="beef">牛肉
<input type="radio" v-model="radio" value="pork">豬肉
</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
var app = new Vue({
el:'.app',
data:{
radio:'',
}
});
</script>
透過 v-model
將 select
下拉式選單和資料 select
綁在一起,此時選擇下拉式選單選項,選項中的value
就會放入資料 select
中,而資料 select
只能用單一選項的 value
當值。select
下拉選單的選項可以用 disabled
來產生無法選取的效果,以免使用者誤點。
<body>
<div class="app">
喜歡吃什麼肉??
<select v-model="select">
<option disabled>-- 請選擇 --</option>
<option value="chicken">雞肉</option>
<option value="pork">豬肉</option>
<option value="beef">牛肉</option>
</select>
</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
var app = new Vue({
el:'.app',
data:{
select:'',
}
});
</script>